home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1995 October
/
EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso
/
Aminet
/
comm
/
ambos
/
Request.lha
/
RequestAm.mdmrexx
next >
Wrap
Text File
|
1995-05-24
|
5KB
|
262 lines
/* RequestAm.mdmrexx 1.1 (13.05.95)
Autor: Cujo@groenld.sb.sub.de */
/*
** $VER: RequestAm.mdmrexx 1.1 (13.05.95)
**
** Teile dieses Skriptes habe ich aus dem Skript RequestFC 1.2 von
** J. Kohrmeyer entnommen.
**
** Beschreibung:
** -------------
** RequestAm dient dazu, aus einer von MAPS geschickten INHALT-Nachrich
t
** oder aus den Aminet-Readme's Files zu requesten. Die gefundenen File
s
** werden alphabetisch sortiert in einem Fenster angezeigt. Mehrfachaus
-
** wahl ist moeglich (SHIFT-Taste druecken). Das Requesten von Aminet-
** Readme's funktioniert nur einwandfrei, wenn das Skript im Brett
** AMINET/READMES gestartet wird.
**
** ACHTUNG!!! Dieses Skript ist Tortenware. Wer dieses Skript regel-
** maessig verwendet, ist verpflichet mir eine Torte zu schicken.
** (Halt! Stop! Noch nicht zum Konditor rennen. War doch nur ein Witz :
-)))
**
** Installation:
** -------------
** 'RequestAm.mdmrexx' soll über das ARexx-Menü von 'MicroDot' aufrufba
r
** sein und muß deshalb nach 'MicroDot/Rexx' kopiert werden. Im Menü
** 'Rexx/Nachrichten-Makros' erscheint dann der Menüpunkt 'RequestAm'.
**
** Am Anfang des Scripts können einige Parameter eingestellt werden:
**
** listenfont = Stellt ein, welcher Font für die Liste verwe
ndet
** werden soll. 'DEFAULT' = Standard-Systemfont
** 'SCREEN' = Screen-Font
**
** fensterbreite = Stellt die Breite des Listview-Fensters ein
**
**
** Zum Schluss moechte ich noch J. Kohrmeyer fuer seine geniale
** rexxtricks.library danken. Diese und die rexxsupport.library werden
** von RequestAm benoetigt.
*/
/**********************************************************************
***/
listenfont = 'DEFAULT' /* 'DEFAULT' oder 'SCREEN'
*/
fensterbreite = 640 /* Breite des Listview-Fenster
s */
/**********************************************************************
***/
ADDRESS Microdot
/* Ergebnisse anfordern */
OPTIONS RESULTS
/* rexxtricks.library öffnen */
IF ~SHOW('LIBRARIES','rexxtricks.library') THEN
IF ~ADDLIB('rexxtricks.library',0,-30,0) THEN
EXIT(10)
/* rexxsupport.library öffnen */
IF ~SHOW('LIBRARIES','rexxsupport.library') THEN
IF ~ADDLIB('rexxsupport.library',0,-30,0) THEN
EXIT(10)
/* Absender und Betreff auslesen */
GETCURRENTMAILHEADER ABS
IF rc ~= 0 THEN DO
CALL BEEP()
EXIT(10)
END
absender = result
GETCURRENTMAILHEADER BET
IF rc ~= 0 THEN DO
CALL BEEP()
EXIT(10)
END
betreff = result
/* Prüfen, ob es eine 'INHALT'-Nachricht oder ein Aminet-Readme ist */
SELECT
WHEN MATCHPATTERN(absender,'maps@#?') & MATCHPATTERN(betreff,'INHALT'
) THEN CALL inhalt
WHEN MATCHPATTERN(absender,'aminet@sb.sub.de') THEN CALL aminet
OTHERWISE DO
CALL BEEP()
EXIT(10)
END
END
/* ListView-Fenster Definition */
GETMDPUBSCREENNAME
screenname = result
windef.title = aktuellbrett
windef.postext = '_Requesten'
windef.negtext = '_Abbrechen'
windef.pubscreen = screenname
windef.sort = 'TRUE'
windef.font = listenfont
windef.width = fensterbreite
/* ListView-Fenster öffnen */
IF VIEWLIST('liste','windef','destvar') THEN DO
/* Alle ausgewählten Dateien requesten */
text = ''
DO i = 0 TO destvar.count-1
x = LSEARCH(destvar.i,'liste')
IF x ~= (-1) THEN
text = text || request.x || '*N'
END
SENDSHORTMAIL 'MAPS "'||text||'" SUBJECT REQUEST'
END
/* Script beenden */
EXIT(0)
/* 'INHALT' von 'MAPS' nach requestbaren Files durchsuchen */
inhalt:
CALL auslagern
nummer = 0
IF LEFT(zeile.1,11) = '** INHALT :' THEN DO
aktuellbrett = SUBSTR(zeile.1,13)
DO i = 0 TO zeile.count-1
IF DATATYPE(WORD(zeile.i,1)) = 'NUM' THEN DO
liste.nummer = SUBSTR(zeile.i,5,20)
request.nummer = aktuellbrett liste.nummer
/* Filelaenge kommt dazu */
liste.nummer = liste.nummer RIGHT(WORD(zeile.i,5),4)
/* Datum kommt dazu */
liste.nummer = liste.nummer RIGHT(WORD(zeile.i,3),5)
/* Beschreibung kommt dazu */
liste.nummer = liste.nummer SUBWORD(zeile.i,6)
nummer = nummer+1
END
END
liste.count = nummer
END
RETURN
aminet:
GETCURRENTBOARD
board=result
PARSE VAR board aktuellbrett nummer .
DO i=0 to nummer-1
SETPOS GOTOPOS i
GETCURRENTMAILHEADER EMP 0
IF rc ~= 0 then exit(10)
empfaenger = result
GETCURRENTMAILHEADER BET
IF rc ~= 0 then exit(10)
betreff = result
CALL auslagern
liste.i = delstr(betreff,length(betreff)-6)
request.i = empfaenger liste.i||'.lha'
liste.i = LEFT(liste.i,20)
/* Beschreibung kommt dazu */
beschreibung = STRIP(SUBSTR(zeile.0,8),'L')
liste.i = liste.i LEFT(beschreibung,50)
END
liste.count = nummer
RETURN
/* Nachricht auslagern, einlesen und wieder loeschen */
auslagern:
/* Auslagern */
EXTRACTCURRENTMAIL 'T:Request-Rexx.temp'
IF rc ~= 0 THEN DO
CALL BEEP()
EXIT(10)
END
/* Einlesen */
IF ~READFILE('T:Request-Rexx.temp','zeile') THEN
EXIT(10)
/* Loeschen */
dummy = DELETE('T:Request-Rexx.temp')